/*
 * Copyright (c) 2012,东方口岸科技有限公司
 * All rights reserved.
 * 文件名称：NodeMapper.java
 * 摘    要：Node Router add delete update query class
 * 版本：1.0
 * 作    者：fengzhiyong
 */
package com.cneport.transfer.router.support.mapper;

import java.util.List;
import java.util.Map;

import com.cneport.transfer.router.model.Node;

/**
 * @Descption Node数据库接口类
 * @CreateTime:2012-6-18
 */
public interface NodeMapper {

    /**
     * @Name: queryNodeList * @Descrption:query Node list info
     * @Author: fengzhiyong
     * @Version: V1.0
     * @CreateDate: 2012-6-11
     * @param nodeId
     * @return List<Node>
     */
    List<Node> queryNodeList(String nodeId);
    
    List<Node> getNodeList(Node node);
    
    int getNodeTotalCount(Node node);

    /**
     * @Name: queryNodeList * @Descrption:query Node list info
     * @Author: fengzhiyong
     * @Version: V1.0
     * @CreateDate: 2012-6-11
     * @param nodeid
     * @return List<Node>
     */
    List<Node> queryChildrenNodeList(String nodeid);

    /**
     * @Name: getNode * @Descrption:get one node
     * @Author: fengzhiyong
     * @Version: V1.0
     * @CreateDate: 2012-6-11
     * @param nodeId
     * @return Node
     */
    Node getNode(String nodeId);

    /**
     * @Name: getNode * @Descrption:get parentId
     * @Author: fengzhiyong
     * @Version: V1.0
     * @CreateDate: 2012-6-11
     * @param nodeId
     * @return Node
     */
    Node getparentId(String nodeId);

    /**
     * @Name: getTotalCount * @Descrption:get node total count
     * @Author: fengzhiyong
     * @Version: V1.0
     * @CreateDate: 2012-6-11
     * @param node
     * @return int
     */
    int getTotalCount(Node node);

    /**
     * @Name: insertNode 　* @Descrption:add node info to database
     * @Author: fengzhiyong
     * @Version: V1.0
     * @CreateDate: 2012-6-11
     * @param node
     * @return int
     */
    int insertNode(Node node);

    /**
     * @Name: deleteNode 　* @Descrption:delete node with database
     * @Author: fengzhiyong
     * @Version: V1.0
     * @CreateDate: 2012-6-11
     * @param nodeId
     * @return int
     */
    int deleteNode(String nodeId);

    /**
     * @Name: updateNode 　* @Descrption:update node with databse
     * @Author: fengzhiyong
     * @Version: V1.0
     * @CreateDate: 2012-6-11
     * @param Node
     * @return int
     */
    int updateNode(Node node);
    
    /**
     * 获取数据字典值(下拉框使用）
     * @param String 
     * @return List<DicAll> 数据字典值列表
     */
    List<Node> getNodeAllByTypeId(String inputValue);
}
